﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Dominio.Entidades;
using Util;

/// <summary>
/// Summary description for Parametro_BLL
/// </summary>
public class Parametro_BLL:Disposable
{
    VacacionesDataContext db = new VacacionesDataContext();
    bool _disposed;

    private string GetParametro(string param) {
        var valorParam = (from p in db.Parametros
                     where p.Codigo == param
                          select new Parametro { Valor = p.Valor }).First().ToString();
        return valorParam;
    }

    public Boolean VacacionesBloqueadas() 
    {
        return bool.Parse(GetParametro("BloqueoVacaciones"));
    }

    private void UpdateParametro(string param, string valor)
    {
        var valorUpdate = (from p in db.Parametros
                         where p.Codigo == param
                         select new Parametro { Valor = p.Valor }).First();
        valorUpdate.Valor= valor;
        db.SubmitChanges();
    }

    public void UpdateBloqueoVacaciones(string valor)
    {
        UpdateParametro("BloqueoVacaciones",valor);
    }

    #region Métodos sobreescritos
    /// <summary>
    /// Método sobrecargado de Dispose que será el que
    /// libera los recursos, controla que solo se ejecute
    /// dicha lógica una vez y evita que el GC tenga que
    /// llamar al destructor de clase.
    /// </summary>
    /// <param name=”bool”></param>
    protected override void Dispose(bool disposing)
    {
        if (_disposed)
            return;

        if (disposing)
        {
            // free other managed objects that implement
            // IDisposable only
            if (db != null)
                db.Dispose();
        }

        // release any unmanaged objects
        // set the object references to null

        _disposed = true;
    }
    #endregion


}